#!/bin/bash

# 清理旧的 ReplicaSet 脚本
# 这个脚本会删除所有副本数为 0 的 ReplicaSet（保留最新的几个）

echo "正在查找旧的 ReplicaSet..."

# 获取所有副本数为 0 的 ReplicaSet
OLD_RS=$(kubectl get rs --all-namespaces -o jsonpath='{range .items[?(@.spec.replicas==0)]}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}')

if [ -z "$OLD_RS" ]; then
    echo "没有找到需要清理的 ReplicaSet"
    exit 0
fi

echo "找到以下旧的 ReplicaSet："
echo "$OLD_RS"

read -p "是否要删除这些 ReplicaSet？(y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "正在删除旧的 ReplicaSet..."
    
    # 删除副本数为 0 的 ReplicaSet
    kubectl get rs --all-namespaces -o jsonpath='{range .items[?(@.spec.replicas==0)]}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}' | while read namespace name; do
        if [ ! -z "$namespace" ] && [ ! -z "$name" ]; then
            echo "删除 ReplicaSet: $namespace/$name"
            kubectl delete rs "$name" -n "$namespace"
        fi
    done
    
    echo "清理完成！"
else
    echo "取消清理操作"
fi

echo ""
echo "当前 ReplicaSet 状态："
kubectl get rs --all-namespaces